// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    numList: [1, 2, 3],
    arr: [100, 101, 102],
    triggered: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('cart 页面加载完毕')
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    console.log('cart 页面初次渲染已经完成')
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log('cart 监听页面显示,此时页面处于显示状态')
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    console.log('cart 当前页面处于隐藏状态')
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    console.log('cart 页面卸载时触发')
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    console.log('监听用户下拉刷新')
    // 产品需求
    // 当用户上拉加载更多后，如果用户进行下拉刷新，需要将数据重置
    this.setData({
      numList: [1, 2, 3]
    })
    // 在下拉刷新以后，loading 效果可能不会回弹回去
    if (this.data.numList.length === 3) {
      wx.stopPullDownRefresh()
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  // onReachBottom() {
  //   console.log('监听用户上拉加载')
  //   // 需求
  //   // 当用户上拉，需要数字进行累加，每次累加 3 个数字
  //   // 目前是[1,2,3],[1,2,3,4,5,6]
  //   // 追加方式：获取数组最后一项 n，n+，n+2，n+3...
  //   wx.showLoading({
  //     title: '数据加载中...'
  //   })

  //   setTimeout(() => {
  //     const lastNum = this.data.numList[this.data.numList.length - 1]
  //     // 定义需要追加的元素
  //     const newArr = [lastNum + 1, lastNum + 2, lastNum + 3]

  //     this.setData({
  //       numList: [...this.data.numList, ...newArr]
  //     })
  //     wx.hideLoading()
  //   }, 1500)
  // },

  getMore() {
    wx.showLoading({
      title: '数据加载中...',
    })
    setTimeout(() => {
      // 记录当前数组的最后一个元素
      let lastNum = this.data.arr[this.data.arr.length - 1]
      // 最后一个元素加 1
      lastNum++
      // 每次向数组中新增三项
      const newArr = [lastNum, lastNum + 1, lastNum + 2]
      this.setData({
        arr: [...this.data.arr, ...newArr]
      })
      // 数据返回，隐藏 loading
      wx.hideLoading()

      wx.showToast({
        title: '数字请求完毕，上滑继续浏览',
        icon: 'none'
      })
    }, 1000)
  },

  onrefresh() {
    wx.showLoading({
      title:'数据加载中...'
    })
    setTimeout(() => {
      // 重置数据
      this.setData({
        arr:[1,2,3]
      })
      // 数据返回，隐藏 Loading
      wx.hideLoading()

      wx.showToast({
        title: '下拉刷新完成，数据已重置...',
        icon:'none'
      })

      // 数据返回，关闭 scroll-view 下拉刷新效果
      this.setData({
        triggered:false
      })
    }, 1000);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})